home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Prog / T / Think-Pascal-7.0.cpt / THINK Pascal Interfaces / AIFF.p < prev    next >
Encoding:
Text File  |  1991-04-03  |  3.4 KB  |  211 lines  |  [TEXT/PJMM]

  1. {    This file has been processed by The THINK Pascal Source Converter, v1.1.    }
  2.  
  3. {
  4. Created: Tuesday, February 5, 1991 at 4:32 PM
  5.     AIFF.p
  6.     Pascal Interface to the Macintosh Libraries
  7.  
  8.         Copyright Apple Computer, Inc. 1990-1991
  9.         All rights reserved
  10. }
  11.  
  12.  
  13. {$IFC UNDEFINED UsingIncludes}
  14. {$SETC UsingIncludes := 0}
  15. {$ENDC}
  16.  
  17.  
  18.     UNIT AIFF;
  19.     INTERFACE USES    Types;
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. CONST
  34. AIFFID = 'AIFF';
  35. AIFCID = 'AIFC';
  36. FormatVersionID = 'FVER';
  37. CommonID = 'COMM';
  38. FORMID = 'FORM';
  39. SoundDataID = 'SSND';
  40. MarkerID = 'MARK';
  41. InstrumentID = 'INST';
  42. MIDIDataID = 'MIDI';
  43. AudioRecordingID = 'AESD';
  44. ApplicationSpecificID = 'APPL';
  45. CommentID = 'COMT';
  46. NameID = 'NAME';
  47. AuthorID = 'AUTH';
  48. CopyrightID = '(c) ';
  49. AnnotationID = 'ANNO';
  50. NoLooping = 0;
  51. ForwardLooping = 1;
  52. ForwardBackwardLooping = 2;
  53.  
  54. { AIFF-C Versions }
  55. AIFCVersion1 = $A2805140;
  56.  
  57. { Compression Types }
  58. NoneName = 'pnot compressed';
  59. ACE2to1Name = 'ACE 2-to-1';
  60. ACE8to3Name = 'ACE 8-to-3';
  61. MACE3to1Name = 'MACE 3-to-1';
  62. MACE6to1Name ='MACE 6-to-1';
  63.  
  64. { Compression Names }
  65. NoneType = 'NONE';
  66. ACE2Type = 'ACE2';
  67. ACE8Type = 'ACE8';
  68. MACE3Type = 'MAC3';
  69. MACE6Type = 'MAC6';
  70.  
  71. TYPE
  72. ID = LONGINT;
  73. MarkerIdType = INTEGER;
  74.  
  75. ChunkHeader = RECORD
  76.     ckID: ID;
  77.     ckSize: LONGINT;
  78.     END;
  79.  
  80. ContainerChunk = RECORD
  81.     ckID: ID;
  82.     ckSize: LONGINT;
  83.     formType: ID;
  84.     END;
  85.  
  86. FormatVersionChunkPtr = ^FormatVersionChunk;
  87. FormatVersionChunk = RECORD
  88.     ckID: ID;
  89.     ckSize: LONGINT;
  90.     timestamp: LONGINT;
  91.     END;
  92.  
  93. CommonChunkPtr = ^CommonChunk;
  94. CommonChunk = RECORD
  95.     ckID: ID;
  96.     ckSize: LONGINT;
  97.     numChannels: INTEGER;
  98.     numSampleFrames: LONGINT;
  99.     sampleSize: INTEGER;
  100.     sampleRate: extended;
  101.     END;
  102.  
  103. ExtCommonChunkPtr = ^ExtCommonChunk;
  104. ExtCommonChunk = RECORD
  105.     ckID: ID;
  106.     ckSize: LONGINT;
  107.     numChannels: INTEGER;
  108.     numSampleFrames: LONGINT;
  109.     sampleSize: INTEGER;
  110.     sampleRate: extended;
  111.     compressionType: ID;
  112.     compressionName: PACKED ARRAY [0..0] OF Byte;
  113.     END;
  114.  
  115. SoundDataChunkPtr = ^SoundDataChunk;
  116. SoundDataChunk = RECORD
  117.     ckID: ID;
  118.     ckSize: LONGINT;
  119.     offset: LONGINT;
  120.     blockSize: LONGINT;
  121.     END;
  122.  
  123. Marker = RECORD
  124.     id: MarkerIdType;
  125.     position: LONGINT;
  126.     markerName: Str255;
  127.     END;
  128.  
  129. MarkerChunkPtr = ^MarkerChunk;
  130. MarkerChunk = RECORD
  131.     ckID: ID;
  132.     ckSize: LONGINT;
  133.     numMarkers: INTEGER;
  134.     Markers: ARRAY [0..0] OF Marker;
  135.     END;
  136.  
  137. AIFFLoop = RECORD
  138.     playMode: INTEGER;
  139.     beginLoop: MarkerIdType;
  140.     endLoop: MarkerIdType;
  141.     END;
  142.  
  143. InstrumentChunkPtr = ^InstrumentChunk;
  144. InstrumentChunk = RECORD
  145.     ckID: ID;
  146.     ckSize: LONGINT;
  147.     baseFrequency: Byte;
  148.     detune: Byte;
  149.     lowFrequency: Byte;
  150.     highFrequency: Byte;
  151.     lowVelocity: Byte;
  152.     highVelocity: Byte;
  153.     gain: INTEGER;
  154.     sustainLoop: AIFFLoop;
  155.     releaseLoop: AIFFLoop;
  156.     END;
  157.  
  158. MIDIDataChunkPtr = ^MIDIDataChunk;
  159. MIDIDataChunk = RECORD
  160.     ckID: ID;
  161.     ckSize: LONGINT;
  162.     MIDIdata: ARRAY [0..0] OF SignedByte;
  163.     END;
  164.  
  165. AudioRecordingChunkPtr = ^AudioRecordingChunk;
  166. AudioRecordingChunk = RECORD
  167.     ckID: ID;
  168.     ckSize: LONGINT;
  169.     AESChannelStatus: ARRAY [0..23] OF SignedByte;
  170.     END;
  171.  
  172. ApplicationSpecificChunkPtr = ^ApplicationSpecificChunk;
  173. ApplicationSpecificChunk = RECORD
  174.     ckID: ID;
  175.     ckSize: LONGINT;
  176.     applicationSignature: OSType;
  177.     data: ARRAY [0..0] OF Byte;
  178.     END;
  179.  
  180. Comment = RECORD
  181.     timeStamp: LONGINT;
  182.     marker: MarkerIdType;
  183.     count: INTEGER;
  184.     text: ARRAY [0..0] OF Byte;
  185.     END;
  186.  
  187. CommentsChunkPtr = ^CommentsChunk;
  188. CommentsChunk = RECORD
  189.     ckID: ID;
  190.     ckSize: LONGINT;
  191.     numComments: INTEGER;
  192.     comments: ARRAY [0..0] OF Comment;
  193.     END;
  194.  
  195. TextChunkPtr = ^TextChunk;
  196. TextChunk = RECORD
  197.     ckID: ID;
  198.     ckSize: LONGINT;
  199.     text: ARRAY [0..0] OF Byte;
  200.     END;
  201.  
  202.  
  203.  
  204.     { UsingAIFF }
  205.  
  206.  
  207.     IMPLEMENTATION
  208. END.
  209.  
  210.  
  211.